/*************************************************************************
  Crytek Source File.
  Copyright (C), Crytek Studios, 2001-2010.
 -------------------------------------------------------------------------
  $Id$
  $DateTime$
  
 -------------------------------------------------------------------------
  History:
  - Oct 27th, 2010  : Created by Michelle Martin
 *************************************************************************/

#ifndef __IKTARGET_HELPER_POS_H__
#define __IKTARGET_HELPER_POS_H__

#if _MSC_VER > 1000
# pragma once
#endif

#include "IKTargetBase.h"

//! This IKTarget follows a helper/dummy of an object
class CIKTarget_AttachedHelperPos : public CIKTarget_Base
{
public:
	CIKTarget_AttachedHelperPos(const SIKTargetParams& ikParams, QuatT &startPosition, EntityId targetEntityID, const char* attachmentName);
	~CIKTarget_AttachedHelperPos() {}

	// =============================================================================

	// Looks through all entity slots to find a static object that has a helper/attachment with the
	// provided name and returns the helper's position and rotation in world space.
	static const QuatT GetHelperPosFromEntityObject(IEntity* pEntity, const char* helperName);

private:
	// don't cheat me on the default constructor
	CIKTarget_AttachedHelperPos();

	virtual QuatT UpdateWorldPos(float frameTime);

private:

	IEntity*	m_targetEntity;
	string		m_attachmentName;
};


#endif // __IKTARGET_HELPER_POS_H__

